Cim prohlizet logy - velike textove soubory?

Otázka od: Karel Kral

21. 7. 2004 8:06

Ahoj,
potrebujeme do naseho programu zabudovat moznost prohlizeni logu. Jsou
to docela velke textove soubory (megabajty az desitky MB). Zatim to
resime tak, ze natahneme poslednich X radek do TMemo. Je to ale jen
takova berlicka - pod Win9x tam nenatahneme vice nez 32 kB, coz je par
set radek a to nestaci.

Idealni by bylo mit neco jako "virtualni" prohlizec, tedy takovy, ktery
nemusi mit cely soubor v pameti.

Mate nejaky napad?
Jak to resite vy?

D7/Pro
--
______________________________________________________
Karel Kral, vedouci odd. IT / IT manager
Purus, s.r.o., Cezavy 627, 664 56 Blucina, CZ
Tel: 547 235 000, 602 552 432, Fax: 547 231 203
E-Mail: mailto:kral@purus.cz, WWW: http://www.purus.cz
______________________________________________________


Odpovedá: Zapletal Martin

21. 7. 2004 8:27

Co takhle SynEdit
http://synedit.sourceforge.net

Zapletal Martin
> potrebujeme do naseho programu zabudovat moznost prohlizeni logu. Jsou
> to docela velke textove soubory (megabajty az desitky MB). Zatim to
> resime tak, ze natahneme poslednich X radek do TMemo. Je to ale jen
> takova berlicka - pod Win9x tam nenatahneme vice nez 32 kB, coz je par


Odpovedá: Jan Novak

21. 7. 2004 10:53

> Jsou to docela velke textove soubory (megabajty az desitky MB).

Tady je prvni chyba. My to resime tak, ze jiz funkce pro ukladani logu
to neuklada jako plain-text, ale timestamp je binarne a textove slozky
hlaseni se cisluji, pri prvnim vyskytu nejakeho textu se mu prideli
cislo (prekvapive staci 0-255) a pri dalsim vyskytu se uklada jiz jen
to cislo.

Hlaseni maji i parametr 'level': err / inf / deb a napriklad 'deb' se
neukladaji vsechny, jen dany pocet pred a po 'err'. Proto muzeme i v
ostrem provozu nechat programy bez vypnuti debug-hlaseni. O (zpozdeny)
zapis bufferu se stara samostatny proces centralne pro vsechny ostatni
procesy, takze ke ztrate muze dojit jen kdyz vytuhne cely system.

Krome toho se po dosazeni jiste velikosti soubor zavre a zacne se
novy. To dovoluje pri prohlizeni rychleji nalezt potrebny okamzik,
jinak se v souboru s promenlivou delkou recordu muze hledat jen
sekvencne. Hotovy soubor se muze ihned archivovat (da se jeste
zkomprimovat na 40%!). Kazdy kus ma svuj nezavisly 'slovnik' textu.

Na prohlizeni mame samostatny program s moznosti filtrace urovni,
procesu, hledani, radky jsou kvuli rychlejsi orientaci obarvene atd.
Aktualni fragment logu ma trvale v pameti, do textu (stringgridu)
prevadi jen to, co se prave ma zobrazovat.

> mit neco jako "virtualni" prohlizec, tedy takovy,
> ktery nemusi mit cely soubor v pameti.

Zde bych pouzil CreateFileMapping / MapViewOfFile / UnmapViewOfFile.


Odpovedá: Karel Kral

21. 7. 2004 11:05

To bych mohl zkusit - jenomze je to takove s kanonem na vrabce.
Zapletal Martin napsal(a):
> Co takhle SynEdit
> http://synedit.sourceforge.net
>
> Zapletal Martin
>
>>potrebujeme do naseho programu zabudovat moznost prohlizeni logu. Jsou

--
______________________________________________________
Karel Kral, vedouci odd. IT / IT manager
Purus, s.r.o., Cezavy 627, 664 56 Blucina, CZ
Tel: 547 235 000, 602 552 432, Fax: 547 231 203
E-Mail: mailto:kral@purus.cz, WWW: http://www.purus.cz
______________________________________________________